package com.hyh.admin.sys.service;


import com.hyh.ad.common.core.domain.model.SysMenu;
import com.hyh.ad.common.core.domain.model.SysRole;

import java.util.List;

/**
 * 系统角色信息表(SysRole)表服务接口
 * @author hyh
 */
public interface ISysRoleService {
    /**
     * 查询系统角色信息
     * @param  sysRoles
     * @return  List<SysRole>
     */
    public List<SysRole> selectListSysRolePage(SysRole sysRoles);


    /**
     * 查询系统角色信息
     * @param  id
     * @return  String
     */
    SysRole selectSysRoleById(Long id);


    /**
     * 新增系统角色信息
     * @param  sysRole
     * @return  int
     */
    int insertSysRole(SysRole sysRole);

    /**
     * 修改系统角色信息
     * @param  sysRole
     * @return  int
     */
    int updateSysRole(SysRole sysRole);


    /**
     * 删除系统角色信息
     * @param  ids
     * @return  int
     */
    int deleteSysRoleByIds(Long[] ids);

    /**
     * 为用户分配角色
     * @param  userId
     * @param  roleIds
     * @return  String
     */
    int assignRoles(Long userId, Long[] roleIds);

    /**
     * 为角色分配菜单
     * @param  roleId
     * @param  menuIds
     * @return  String
     */
    int assignMenus(Long roleId, Long[] menuIds);

    /**
     * 查询角色拥有的菜单
     * @param  roleId
     * @return  List<SysMenu>
     */
    List<SysMenu> selectRoleMenus(Long roleId);

    /**
     * 更新用户角色状态
     * @param  sysRole
     * @return  String
     */
    int updateStatus(SysRole sysRole);
}
